//方法一：使用fs文件系统模块，读文件
// const express = require("express");
// const app = express();
// app.listen(3000,()=>{
//   console.log("服务器已开启");
// });
// const fs = require("fs");
// app.get('/index',(req,res)=>{
//   const str = req.url+ ' ' +new Date() + "\n";
//   fs.appendFile("./run.log",str,(err)=>{
//     console.log(err);
//   })
//   res.send("首页");
// }); 
// app.get("/movie",(req,res)=>{
//   const str = req.url+ " " +new Date()+"\n";
//   fs.appendFile("./run.log",str,(err)=>{
//     console.log(err);
//   })
//   res.send("电影页");
// });

//方法二 封装成读文件的函数
// const express = require("express");
// const app = express();
// app.listen(3000,()=>{
//   console.log("服务器已开启");
// });
// const fs = require("fs");
// app.get("/index",(req,res)=>{
//   writeLog(req)
//   res.send("首页");
// });
// app.get("/movie",(req,res)=>{
//   writeLog(req);
//   res.send("电影页");
// });
// function writeLog(req){
//   const str = req.url +" "+ new Date() + "\n";
//   fs.appendFile("./run.log",str,(err)=>{
//     console.log(err);
//   });
// };

//方法三：封装成中间件
// const express = require("express");
// const app = express();
// app.listen(3000,(req,res)=>{
//   console.log("服务器已开启");
// });
// const fs = require("fs");
// app.use(writeLog);

// app.get("/index",(req,res)=>{
//   res.send("首页");
// });
// app.get("/movie",(req,res)=>{
//   res.send("电影页");
// });
// function writeLog(req,res,next){
//   const str = req.url + " " + new Date() + "\n";
//   fs.appendFile("./run.log",str,(err)=>{
//     if(err){
//       console.log(err);
//     }
//   });
//   next();
// }

//封装一个自定义检测url的中间件
// const express = require("express");
// const app = express();
// app.listen(3000,()=>{
//   console.log("服务器已开启");
// });
// app.use(checkURL);
// app.get('/index',(req,res)=>{
//   console.log(req.a);
//   res.send("首页");

// });
// app.get('/list',(req,res)=>{
//   res.send("列表页");
// });
// app.get('/detail',(req,res)=>{
//   res.send("详情页");
// });
// app.get('/movie',(req,res)=>{
//   res.send("电影页");
// });
// //封装检测url地址的中间件
// function checkURL(req,res,next){
//   //方法一
//   // if(req.url != "/index" && req.url != "/list" && req.url != "/detail"){
//   //   res.send("404 not found");
//   // };
//   // next();

//   //方法二
//   // if(req.url == "/index" || req.url == "/list" || req.url == "/detail"){
//   //   next();
//   // }
//   // res.send("404 not found...");
  
//   //方法三
//   //将正常的url地址组成一个数组
//   const url = ["/index","/list","/detail"];
//   const arr = url.includes(req.url);
//   //判断当前请求的url地址是否在数组中
//   if(arr == false ){
//     //如果不在，则向浏览器响应404 not found
//     return res.end("404 not found...");
//   }
//   //如果存在，则进入下一个中间件
//   next();
// };


const express = require("express");
const app = express();
app.listen(3000,(req,res)=>{
  console.log("服务器已启动");
});
//注册为中间件
app.use(aa);

app.get("/index",(req,res)=>{
  res.send("首页");
  //打印挂载到req对象上的属性a的值
  console.log(req.a);
});
//封装一个中间件(演示中间件是怎么挂载属性的)
function aa(req,res,next){
  req.a = "我是要挂载到req对象上的属性a"
  next();
};